function startMove(obj, oTarget, fn) {
    clearInterval(obj.timer);
    obj.timer = setInterval(function () {
        var oBtn = true;
        for(var sAttr in oTarget){
            if(sAttr == 'opacity') {
                var iCur = Math.round(parseFloat(getStyle(obj, sAttr)) * 100);
            } else {
                var iCur = parseInt(getStyle(obj, sAttr));
            }
            var iSpeed = (oTarget[sAttr] - iCur)/8;
            iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed); 
            var iNow = iCur + iSpeed;
            
            if(sAttr == 'opacity') {
                obj.style.opacity = iNow/100;
                obj.style.filter = 'alpha(opacity:' + iNow + ')';
            } else {
                obj.style[sAttr] = iNow + 'px';
            }

            // 判断属性是否完成
            if(iNow != oTarget[sAttr]) {
                oBtn = false;
            }
        }
        if(oBtn) {
            clearInterval(obj.timer);
            if(fn) {
                fn();
            }
        }
    }, 50);

    // 获取样式函数
    function getStyle(obj, sAttr) {
        if(obj.currentStyle){
            return obj.currentStyle[sAttr];
        } else {
            return getComputedStyle(obj, false)[sAttr];
        }
    }
}